Estaba trabajando en la navegación de páginas en Ionic. Después de usar el ionic serve , recibí este error:
The Page with .ts extension has a @IonicPage decorator, but it does not have a corresponding "NgModule" .
¿Alguien puede explicar por qué recibo este error?
Esto se debe a que el decorador @IonicPage() es para enlaces profundos, esto registrará la página en el sistema de enlaces profundos de ionic .
Puede eliminar el decorador si no desea un vínculo profundo en esa página.
O puede registrar esa página en su YOURPAGE.module.ts con este código:
@NgModule({ declarations: [ MyPage ], imports: [ IonicPageModule.forChild(MyPage) ], entryComponents: [ MyPage ] })Puede encontrar más información en los documentos
Acabo de eliminar el siguiente atributo de la página del componente:
<!-- /src/app/pages/{page-name}/{page-name.ts} --> @IonicPage()Otras páginas de ejemplo de ionic ni siquiera lo tienen. Parece que la CLI iónica está desactualizada (supongo que la usó para generar el componente de la página).
Si desea utilizar enlaces profundos, primero lea el documento API
y ahora veamos un ejemplo para agregar una página con enlaces profundos:
Esta es nuestra estructura de carpetas src:
-src --app --assets --pages --home *home.html *home.scss *home.ts --thems *some file we not working with them in herepara agregar una página, use este comando en la carpeta de su aplicación:
$ ionic g page showshow es el nombre de la página. y ahora esta es nuestra estructura de carpetas src:
-src --app --assets --pages --home *home.html *home.scss *home.ts --show *show.html *show.scss *show.ts --thems *some file we not working with them in hereSi ahora ejecuta su aplicación con el siguiente comando en la carpeta de su aplicación:
$ ionic serveobtienes un error como este:
/path/to/app/src/pages/show/show.ts tiene un decorador @IonicPage, pero no tiene un "NgModule" correspondiente en /path/to/app/src/pages/show/show.module. t
ahora debe crear un archivo llamado show.module.ts (por error, dice) en la carpeta show, luego nuestra estructura de carpetas src debería ser así:
-src --app --assets --pages --home *home.html *home.scss *home.ts --show *show.html *show.scss *show.ts *show.module.ts --thems *some file we not working with them in here y este es el contenido del archivo show.module.ts :
import { NgModule } from '@angular/core'; import {IonicPageModule} from 'ionic-angular'; import { ShowPage } from './show'; @NgModule({ declarations: [ ShowPage ], imports: [ IonicPageModule.forChild(ShowPage) ], entryComponents: [ ShowPage ] }) export class ShowPageModule {} Hecho. ejecute su aplicación con ionic serve y el error desaparecerá.
Puede navegar a su nueva página con
goToMyPage() { // go to the ShowPage component this.navCtrl.push('ShowPage'); }